package com.campus.controller;

import com.campus.context.CurrentHolder;
import com.campus.mapper.CourseMapper;
import com.campus.pojo.entity.Course;
import com.campus.pojo.vo.CourseVO;
import com.campus.result.Result;
import com.campus.service.CourseService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

@RestController
@RequestMapping("/course")
@Slf4j
public class CourseController {

    @Autowired
    private CourseService courseService;


    /**
     * 导入课程表
     * @param file
     * @return
     */
    @PostMapping("/import")
    public Result importCourses(@RequestParam("file") MultipartFile file) {
        log.info("导入课程表：{}", file.getOriginalFilename());
        courseService.importCourses(file);
        return Result.success();
    }

    /**
     * 查询所有课程
     * @return
     */
    @GetMapping("/list")
    public Result<List<CourseVO>> getCourses() {
        log.info("查询课程表 用户id：{}", CurrentHolder.getCurrentId());
        List<CourseVO> courseVOList = courseService.getCourses();
        return Result.success(courseVOList);

    }

    /**
     *  下载标准课表模版
     *   HttpServletResponse response 是什么？
     * 它是 Java Servlet 规范中的一个接口，代表 服务器对 HTTP 请求的响应。
     * 当前端发起一个请求（如 GET /api/course/template），Spring 会自动创建 response 对象
     */
    @GetMapping("/downloadTemplate")
    public void downloadTemplate(HttpServletResponse response) {
        log.info("下载标准课表模版 用户id：{}", CurrentHolder.getCurrentId());
        courseService.downloadTemplate(response);
    }


}